package mysql8学习.高级.第07章_InnoDB数据存储结构存储;


/**
 * COMPACT 行格式
 *
 * 记录的额外信息
 *    变长字段长度列表
 *       保存每个列的真实数据长度（倒叙保存（想从gui最后一列开始保存））
 *    NULL值列表 （0表示不为空  1表示为空）
 *       Compact行格式会把 "可以为 NULL" 的列统一管理起来，
 *       存在一个标记为NULL值列表中
 *       如果表中没有允许存储NULL的列，则NULL值列表也不存在了。
 *    记录头信息（5个字节）（40位）   详见 页的内部结构
 * @see B0_页的内部结构
 *
 * 记录信息(表的每一个列)
 *     列1  值1
 *     列2  值2
 *     列3  值3 ....
 *
 * 记录的真实数据除了我们自己定义的列的数据以外，还会有三个隐藏列:
 * 列名             是否必须       占用空间      措述
 * row_id            否           6字节       行ID，唯一标识一条记录
 * transaction_id    是           6字节       事务ID
 * roll_pointer      是           7字节       回滚指针
 * 实际上这几个列的真正名称其实是:
 * DB_ROW_ID、 DB_TRX_ID、DB_ROLL_PTR。
 *
 * ● 一个表没有手动定义主键，则会选取一个Unique键作为主键，
 *   如果连Unique键都没有定义的话，则会为表默认添加一个名为row_id的隐藏列作为主键。
 *   所以row_id是在没有自定义主键以及Unique键的情况下才会存在的。
 * ● 事务ID和回滚指针 在后面的 《第14章_ MySQL事务日志》章节中讲解。
 *
 *
 */
public class D1_COMPACT行格式 {
}
